home *** CD-ROM | disk | FTP | other *** search
/ Deutsche Edition 1 / Deutsche Edition 1.iso / amok / amok_lha / amok20.lha / ComplexLib / txt / ComplexInOut.mod < prev    next >
Text File  |  1993-08-15  |  2KB  |  81 lines

  1.  
  2. (*********************************************************************
  3.  
  4.     :Program.       ComplexInOut.mod
  5.     :Author.        Gary Struhlik  
  6.     :Address.    -
  7.     :Phone.      -
  8.     :shortcut.      [gs]
  9.     :Version.       1.0   
  10.     :Date.          22.10.1988
  11.     :Copyright.  PD
  12.     :Language.      Modula-II
  13.     :Translator. M2Amiga
  14.     :Imports.     ComplexLib [gs]
  15.     :UpDate.     -
  16.     :Contents.     Ein- Ausgabe für komplexe Zahlen
  17.     :Remark.     Für den Amiga Modula-2 Klub / Stuttgart
  18.     :Remark.     Am 01.01.1989 mit M2Amiga 3.2d neu kompiliert
  19.  
  20. **********************************************************************)
  21.  
  22.  
  23. IMPLEMENTATION MODULE ComplexInOut;
  24.  
  25. FROM ComplexLib IMPORT COMPLEX,cpol,crec;
  26. IMPORT RealInOut; 
  27. FROM InOut IMPORT WriteLn,WriteString; 
  28. FROM RealConversions IMPORT RealToStr;
  29.   
  30. PROCEDURE WriteComplex( A : COMPLEX; m,n : INTEGER; expo,pol : BOOLEAN );
  31. VAR
  32.     s1,s2 : ARRAY [0..79] OF CHAR;
  33.         logo : BOOLEAN;
  34.         x : REAL;
  35.         Y : COMPLEX;
  36. BEGIN
  37.    IF NOT pol THEN
  38.     x:=ABS(A.IM);
  39.     RealToStr(A.RE,s1,m,n,expo,logo);
  40.     RealToStr(x,s2,m,n,expo,logo);
  41.     IF A.IM >= 0.0 THEN 
  42.           WriteString(s1); WriteString('+j'); WriteString(s2)
  43.         ELSE
  44.           WriteString(s1); WriteString('-j'); WriteString(s2)
  45.         END
  46.    ELSE
  47.         cpol(Y,A); (* A in Polarform umwandeln *) 
  48.         RealToStr(Y.RE,s1,m,n,expo,logo);
  49.         RealToStr(Y.IM,s2,m,n,expo,logo);
  50.         WriteString(s1); WriteString(' <'); WriteString(s2) 
  51.    END
  52. END WriteComplex;  
  53.  
  54. PROCEDURE ReadComplex( VAR A : COMPLEX; pol : BOOLEAN);
  55. VAR
  56.     X : COMPLEX;
  57. BEGIN
  58.      IF NOT pol THEN
  59.     RealInOut.ReadReal(A.RE); RealInOut.ReadReal(A.IM)
  60.      ELSE
  61.         RealInOut.ReadReal(A.RE); RealInOut.ReadReal(A.IM);
  62.         crec(A,A)
  63.      END   
  64. END ReadComplex;        
  65.  
  66. PROCEDURE WriteReal( x : REAL; m,n : INTEGER; expo : BOOLEAN);
  67. VAR
  68.     s : ARRAY [0..79] OF CHAR;
  69.         logo : BOOLEAN;
  70. BEGIN
  71.     RealToStr(x,s,m,n,expo,logo);
  72.         WriteString(s)
  73. END WriteReal;
  74.  
  75. PROCEDURE ReadReal( VAR x : REAL);
  76. BEGIN
  77.     RealInOut.ReadReal(x)
  78. END ReadReal;                        
  79.  
  80. END ComplexInOut.
  81.